import request from '@/utils/request';
/*
  ---------------------------- 词典 --------------------------
*/

/**
 * 获取标签列表
 * @param keyword 
 */
export function getLabelList(data) {
    return request({
        url: `/nlp/dictionary/label/list`,
        method: 'post',
        data,
    });
}

/**
 * 添加标签
 * @param isMultiple 是否批量 1 批量 0 单个 
 */
export function addLabel(data, isMultiple) {
    return request({
        url: isMultiple == '1' ? '/nlp/dictionary/label/batch' : '/nlp/dictionary/label',
        method: 'post',
        data,
    });
}

/**
 * 删除标签
 * @param dictionary_label_id  目标标签id
 */
export function delLabel(dictionary_label_id) {
    return request({
        url: '/nlp/dictionary/label',
        method: 'delete',
        params: { dictionary_label_id },
    });
}



/**
 * 获取关键词列表
 * @param keyword 目标任务
 */
export function getKeyWordList(pageNum, pageSize, keywordName, dictionaryLabelId) {
    return request({
        url: `/nlp/dictionary/keyword/list`,
        method: 'post',
        data: { pageNum, pageSize, data: { keywordName, dictionaryLabelId } },
    });
}

export function hasKeyWord(data) {
    return request({
        url: `/nlp/dictionary/keyword/list`,
        method: 'post',
        data
    });
}

/**
 * 添加post 编辑put 关键词
 */
export function addKeyWord(data, type) {
    return request({
        url: '/nlp/dictionary/keyword',
        method: type === 'add' ? 'post' : 'put',
        data,
    });
}

/**
 * 上传文件批量添加关键词
 * @param data 
 */
export function addKeyWords(data) {
    return request({
        url: '/nlp/dictionary/keyword/batch',
        method: 'post',
        data,
    });
}


/**
 * 删除 关键词
 * @param keyword_id  目标 关键词 id
 */
export function delKeyword(keyword_id) {
    return request({
        url: '/nlp/dictionary/keyword',
        method: 'delete',
        params: { keyword_id },
    });
}


// ----------------------------- 词向量 *--------------------------


/**
 * 获取词向量列表
 * @param wordvecName 
 */
export function getWordvecsList(data) {
    return request({
        url: `/nlp/wordvec/list`,
        method: 'post',
        data
    });
}

/**
 * 获取已训练词向量
 * @param  
 */
export function getActiveWordvecs() {
    return request({
        url: `/nlp/wordvec/list/trained`,
    });
}

/**
 * 获取词向量详情
 * @param  wordvecId 
 */
export function getWordvec(wordvecId) {
    return request({
        url: `/nlp/wordvec/${wordvecId}`,
        method: 'get',
    });
}

/**
 * 添加post 编辑put 词向量
 * @param  
 */
export function addWordvecs(data, type, boolean) {
    if (boolean) { // true 编辑 false 新增
        return request({
            url: '/nlp/wordvec',
            method: 'put',
            data,
        });
    } else {
        const uri = ['/nlp/wordvec/wordvec/exist', '/nlp/wordvec'];
        return request({
            url: uri[type - 0], // 0 添加词向量,使用已训练好的词向量文件  1 添加词向量
            method: 'post', 
            data,
        });
    }
}

/**
 * 获取词向量算法列表
 * @param   
 */
export function getAlgorithms(algorithm_id) {
    return request({
        url: `/nlp/wordvec/word_vector/algorithms`,
        method: 'get',
        params: { algorithm_id },
    });
}

/**
 * 删除词向量
 * @param  wordvecId 
 */
export function deleteWordvec(wordvecId) {
    return request({
        url: `/nlp/wordvec/${wordvecId}`,
        method: 'delete',
    });
}
/**
 * 获取词向量下文件
 * @param  wordvecId 
 * @param  datasetType
 */
export function getWordvecFiles(wordvecId, datasetType) {
    return request({
        url: `/nlp/wordvec/dataset/${wordvecId}`,
        method: 'get',
        params: { datasetType: [1, 0][datasetType] },
    });
}
/**
 * 训练词向量
 * @param  wordvecId 
 */
export function wordvecTrain(wordvecId) {
    return request({
        url: `/nlp/wordvec/train/${wordvecId}`,
        method: 'post',
    });
}

/**
 * 上传词向量语料或已训练好的词向量文件
 * @param data 
 */
export function uploadFiles(data) {
    return request({
        url: '/nlp/wordvec/upload',
        method: 'post',
        data,
    });
}

/**
 * 词向量预测
 * @param data: wordvecId,text  
 */
export function wordvecTest(data) {
    return request({
        url: '/nlp/wordvec/test',
        method: 'post',
        data,
    });
}
/**
 * 删除词向量下数据集
 * @param  datasetId  
 */
export function deleteWordvecDataset(datasetId) {
    return request({
        url: `/nlp/wordvec/dataset/${datasetId}`,
        method: 'delete',
    });
}